/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.tmd.controlefinanceiro.persistence;

import br.com.tmd.controlefinanceiro.modelo.Usuario;
import br.com.tmd.controlefinanceiro.util.HibernateUtil;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author luis
 */
public class UsuarioDao extends GenericDao<Usuario> {

    public UsuarioDao() {
        super(new Usuario());
    }

    public Usuario consultaUsuario(String login) {
        Usuario usuario;

        session = HibernateUtil.getSessionFactory().openSession();
        transaction = session.beginTransaction();
        usuario = (Usuario) session.createQuery("From Usuario where login =" + "'" + login + "'").uniqueResult();
        session.close();
        return usuario;
    }

    public List<Usuario> listaFuncionarios() {

        session = HibernateUtil.getSessionFactory().openSession();
        criteria = session.createCriteria(Usuario.class);
        Criterion restricao = Restrictions.eq("tipo", "F").ignoreCase();
        criteria.add(restricao);
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
        List<Usuario> lista = criteria.list();
        session.close();
        return lista;
    }

    public Usuario buscarPorLogin(String login) {
        session = HibernateUtil.getSessionFactory().openSession();
        criteria = session.createCriteria(Usuario.class);
        Criterion restricao = Restrictions.eq("login", login).ignoreCase();
        criteria.add(restricao);

        Usuario usuario = (Usuario) criteria.uniqueResult();

        session.close();
        return usuario;

    }

}
